<!doctype html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>约瑟夫环</title>
	</head>
	<body>
		
	</body>
	<script type="text/javascript">
		var arr = [];
		for(var i = 0; i < 13; i++){
			arr[i] = i + 1;
		}
		console.log(arr);
		// 游戏结束的条件，人数只能剩余1个
		var count = 1; //报数 123 123 123
		var index = 0; //代表报数的是第几个人
		while(arr.length > 1){
			// 数123，踢除3
			// 如果报数报的是3，要踢掉这个人
			if (count==3) {
				// 踢掉人
				// 踢掉报数为3的人。
				arr.splice(index, 1);
				// 踢掉人之后，后面人的位置会依次向前。所以让箭头减一，保证指向的是踢掉的人的下一个
				index--;
				// 报数到3之后要从新开始
				count = 0;
			}
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		// 处理完之后要继续下一个人报数
			// 箭头指向的下标++代表找到下一个人
			index++;
			// 如果下标和数组长度相等了，代表一圈结束了要从第一个人开始
			if (index==arr.length) {
				index = 0;
			}
			// 下个人要报的数也要+1（123123123）
			count++;
		}
		console.log(arr);
 		



	</script>
</html>